|
Galois/Counter Mode (GCM)は、ブロック暗号の暗号利用モードの一つであり、認証付き暗号の一つである。 GCMは認証付き暗号の一つであり、データ保護と認証(完全性確認)の双方に利用できる。GCMはブロック長128ビットのブロック暗号に適用可能である。Galois Message Authentication Code (GMAC) は、認証のみに特化したGCMの派生であり、メッセージ認証符号として利用できる。GCM、GMACのいずれも、任意長の初期化ベクトルを用いることが可能である。 同じブロック暗号であっても、暗号利用モードが異なればそのパフォーマンスや効率には大きな違いが生じる。GCMは並列処理が可能であり、また、その実装は命令パイプラインやハードウェアでのパイプラインを活用することが可能である。一方、CBCモードはしばしば(命令やユニット間の相互関係によってパイプラインが停止すること)に陥る。 == 暗号化と認証 == 名称が示すように、GCMは暗号化としてCTRモードを、認証として新しいGalois modeを組み合わせたものである。鍵となるのは認証に用いられるガロア域 (Galois field)における乗法であり、並列計算が可能であることからCBCモードのように連鎖モードを用いる認証アルゴリズムよりも高速化が可能である。利用される GF(2128) 有限体は以下の多項式で定義される。 : 認証タグはGHASH関数にデータブロックを与えることで構成され、その結果は暗号化される。GHASH関数は以下のように定義される。 : ここで ''H'' は128個のゼロから成る文字列をブロック暗号によって暗号化したもの、''A'' は認証のみ行う(暗号化はしない)データ、''C'' は暗号文、''m'' は ''A'' に含まれる128ビットのブロックの数、''n''は ''C'' に含まれる128ビットのブロックの数である(''A'' および ''C'' の最終ブロックは128ビットちょうどである必要はない)。''i'' = 0, ..., ''m'' + ''n'' + 1 に対する ''X''''i'' は以下のように定義される〔 ''Note that there is a typo in the formulas in the article.''〕。 : ここで ''v'' は ''A'' の最終ブロックのビット長、 ''u'' は ''C'' の最終ブロックのビット長であり、 はビット列の連結を示している。ここで注意することは、これが反復アルゴリズムであり、各々の ''X''''i'' が ''X''''i-1'' に依存し、最終的な ''X''''i'' のみが出力として現れることである。 GCMは、Carter–Wegman Counter mode()の改良としてJohn ViegaおよびDavid A. McGrewによって設計された。 2007年11月2日、NISTはNIST Special Publication 800-38D ''Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC''を発表し、GCMおよびGMACを公式な標準として認定した。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Galois/Counter Mode」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Galois/Counter Mode 」があります。 スポンサード リンク
|